package net.zjitc.stack;

public class MyArraysStack<E> implements MyStack<E> {
    private int size;
    private Object[] arr = new Object[10];

    public MyArraysStack() {
    }


    public MyArraysStack(int size) {
        arr = new Object[size];
    }

    /**
     * 入栈（压栈）
     *
     * @param e
     */
    @Override
    public void push(E e) {
      arr[size++] = e;
    }

    /**
     * 出栈（弹栈）
     *
     * @return
     */
    @Override
    public E pop() {
        return (E) arr[--size];
    }

    /**
     * 查看栈顶元素
     *
     * @return
     */
    @Override
    public E peek() {
        return (E) arr[size-1];
    }

    /**
     * 判断栈是否为空
     *
     * @return
     */
    @Override
    public boolean isEmpty() {
        return size == 0 ? true : false;
    }

    /**
     * 判断栈是否为满
     * @return
     */
    public boolean isFull() {
        return size == arr.length ? true : false;
    }
}
